Skip to main content

Vector Functions

Range​

Creates a sequence of numbers from start to end, with an optional step size:
Syntax:     Start:Step:End or Start:End

Example: 1:5 → {1, 2, 3, 4, 5}
10:-2:2 → {10, 8, 6, 4, 2}

Length​

Returns the number of elements in a vector:
Syntax:     Vector.Length()

Example: {1, 1, 2, 3}.Length() → 4
{ 'a', 'b', 'c' }.Length() → 3

Select​

Retrieves elements from a vector using indices, names, or conditions:
Syntax:     Vector{Selector}

Example: {4, 5, 6}{2} → 5
{ 'a': 1, 'b': 2 }{'b'} → 2
{10, 20, 30}{ vector > 15 } → {20, 30}

Join​

Combines multiple items into a vector:
Syntax:     Join(Item1, Item2, ...)

Example: Join(0, {1, 2}) → {0, 1, 2}
Example: Join('a', {'b', 'c'}) → {'a', 'b', 'c'}

Flatten​

Removes nesting and flattens a vector to a single level:
Syntax:     Vector.Flatten()

Example: { {1, 2}, {3} }.Flatten() → {1, 2, 3}
{ { {1} } }.Flatten() → {1}

Unique​

Removes duplicates from a vector:
Syntax:     Vector.Unique()

Example: {1, 2, 2, 3}.Unique() → {1, 2, 3}
{'a', 'a', 'b'}.Unique() → {'a', 'b'}

Union​

Combines two vectors and removes duplicates:
Syntax:     Vector1.Union(Vector2)

Example: {1, 2}.Union({2, 3}) → {1, 2, 3}
{ 'x' }.Union({ 'y', 'z' }) → {'x', 'y', 'z'}

Intersection​

Returns common elements from both vectors:
Syntax:     Vector1.Intersection(Vector2)

Example: {1, 2}.Intersection({2, 3}) → {2}
{'a', 'b'}.Intersection({'b', 'c'}) → {'b'}

Difference​

Returns elements unique to each vector:
Syntax:     Vector1.Difference(Vector2)

Example: {1, 2}.Difference({2, 3}) → {1, 3}
{'a', 'b'}.Difference({'b', 'c'}) → {'a', 'c'}

Sort​

Sorts a vector in ascending order:
Syntax:     Vector.Sort()

Example: {4, 1, 3}.Sort() → {1, 3, 4}
{8, -2, 0}.Sort() → {-2, 0, 8}

Reverse​

Reverses the order of elements:
Syntax:     Vector.Reverse()

Example: {4, 5, 6}.Reverse() → {6, 5, 4}
{'x', 'y', 'z'}.Reverse() → {'z', 'y', 'x'}
{true, false}.Reverse() → {false, true}

Sample​

Randomly selects elements from a vector:
Syntax:     Vector.Sample(size, allowRepeats=False)

Example: {10, 20, 30}.Sample(2) → {30, 10}
{1, 2, 3}.Sample(2, true) → {2, 2}
{1, 2, 3, 4}.Sample(3) → e.g., {1, 3, 4}

IndexOf​

Finds the position of an element:
Syntax:     Vector.IndexOf(element)

Example: {5, 10, 15}.IndexOf(10) → 2
{'red', 'blue'}.IndexOf('green') → 0
{7, 8, 7}.IndexOf(7) → 1

Contains​

Checks if a vector contains a value:
Syntax:     Vector.Contains(element)

Example: {100, 200}.Contains(100) → true
{1, 2, 3}.Contains(0) → false
{}.Contains(1) → false

Repeat​

Generates a vector by repeating an expression:
Syntax:     Repeat(expression, times)

Example: Repeat(x+1, 3) → {2, 3, 4}
Repeat(x*2, 4) → {2, 4, 6, 8}
Repeat('Item ' + key, {'id1', 'id2'}) → {'id1': 'Item id1', 'id2': 'Item id2'}

Map​

Applies a function to each element of the vector:
Syntax:     Vector.Map(function)

Example: {1, 2, 3}.Map(x + 1) → {2, 3, 4}
{'a': 1, 'b': 2}.Map(x*10) → {'a': 10, 'b': 20}
{'x': 5}.Map(key + '=' + x) → {'x': 'x=5'}

Filter​

Returns elements that meet a condition:
Syntax:     Vector.Filter(condition)

Example: {1, 2, 3, 4}.Filter(x > 2) → {3, 4}
{'a': 5, 'b': 0}.Filter(x > 0) → {'a': 5}
{10, 15, 20}.Filter(x mod 10 == 0) → {10, 20}

Keys​

Retrieves the key values from a named vector:
Syntax:     Vector.Keys()

Example: {'x': 1, 'y': 2}.Keys() → {'x', 'y'}
{'temp': 30}.Keys() → {'temp'}

Values​

Retrieves the values from a vector:
Syntax:     Vector.Values()

Example: {'a': 10, 'b': 20}.Values() → {10, 20}
{1, 2, 3}.Values() → {1, 2, 3}

Lookup​

Finds a result based on input and interpolates if necessary:
Syntax:     Lookup(value, valuesVector, resultsVector)

Example: Lookup(3, {1, 5}, {10, 50}) → 30
Lookup(2, {2, 4}, {20, 40}) → 20
Lookup(6, {5, 10}, {100, 200}) → 120

ConverterTable​

Returns x/y value pairs from a converter:
Syntax:     ConverterTable([Converter])

Example: ConverterTable([Speed]) → { {x: 0, y: 0}, {x: 1, y: 100} }
ConverterTable([Temp]){*, "x"} → {0, 1}
ConverterTable([Temp]){*, "y"} → {0, 100}